//封装ajax函数
//兼容post和get
//!请使用异步-Promise对象里的ajax函数
function ajax({ baseUrl, url, method = 'GET',
    data = {}//默认值
    , headers = {}, callback }) {
    //baseUrl基础地址 、url地址、 method请求方式 
    //data参数、 headers请求头、 callback回调函数
    let xhr = new XMLHttpRequest();
    let qrey = "?"
    if (Object.keys(data).length) {
        for (const key in data) {
            qrey += `${key}=${data[key]}&`
        }
    }
    //设置请求头
    function setRequestHeader() {
        if (Object.keys(headers).length) {
            for (const key in headers) xhr.setRequestHeader(key, headers[key])
        }
    }
    if (method.toUpperCase() === "GET") {
  
        xhr.open(method, baseUrl + url + qrey.slice(0, -1))
        setRequestHeader()
        xhr.send()
    } else {
        xhr.open(method, baseUrl + url)
        setRequestHeader()
        xhr.send(JSON.stringify(data))
    }
    //监听
    xhr.addEventListener("readystatechange", () => {
        if (xhr.readyState == 4) {
            if (xhr.status == 200) callback(JSON.parse(xhr.response))
            else callback(JSON.parse(xhr.response))
        }
    })
}
module.exports={
    ajax
}